//
//  ArrayList.h
//  LC3Compiler
//
//  Created by Anthony Sierra on 6/1/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
typedef struct
{
    char *name;
    int line_number;
} Symbol;

typedef struct
{
    Symbol **items;
    int listSize;
    int arraySize;
} ArrayList;


void initializeArrayList(ArrayList * list);
void destroyArrayList(ArrayList * list);
int getSize(const ArrayList * list);
Symbol* getItem(const ArrayList * list, int index);
void setItem(ArrayList * list, int index, Symbol *symbol);
void addItemToEndOfArrayList(ArrayList * list, Symbol *value);
void addItemBeforeItem(ArrayList * list, int index, Symbol *value);
int getItemIndex(const ArrayList * list, char*word);